Если вы хотите от запроса скорости, то избавляйтесь от "вложенных" запросов. Вот это:
EXISTS (select 1 FROM oc_product_attribute_id p2a0 WHERE p2a0.product_id=p2a.product_id AND p2a0.text_id = 67)
На каждую строку системе еще и доп запрос делать приходится
Убирайте лишние join-ны.
К примеру у вас есть
LEFT JOIN oc_manufacturer m ON(m.manufacturer_id=p.manufacturer_id)
А теперь найдите где вы к M в выборке данных общаетесь.
Если вы выводите данные attribute_id, text
то зачем вам в подзапросе еще куча полей понадобилась?
SELECT DISTINCT p.product_id, p2a.attribute_id, p2a.text, p.price as realprice
WHERE 1
Я не знаток MySQL но я не понимаю зачем вам это???
Еще видим условие:
WHERE p2a.attribute_id IS NOT NULL
Если p2a.attribute_id обязателен, то стоит написать INNER JOIN к таблице и не мучать себя лишними и бесполезными условиями.