En primer lugar, cuestiono el uso de una combinación externa, ya que la orden está operando en la derecha, y es probable que los NULL inyectados por la combinación izquierda causen estragos.
Independientemente, el enfoque más simple para acelerar esta consulta sería un índice de cobertura en pb.id_brand y pb.brand. Esto permitirá que el orden sea evaluado 'usando índice' con la condición de unión. La alternativa es encontrar alguna forma de reducir el tamaño del resultado intermedio que se pasa a order-by.
Aún así, la combinación de combinación externa, orden por y límite me deja preguntándome qué es exactamente lo que está consultando y si no podría haber una mejor manera de expresar la consulta en sí.