Проще двумя запросами. Подзапросы и джоин сам на себя не советую если база большая и индексы не расставлены или более сложная логика присутсвует вроде (показать картинку последнего продукта).
Вытащить все категории, потом вытащить по одному продукту для каждой через
IN
Либо вариант второй, денормализировать, и хранить картинку категории в категории
P.S. Если всё же захотите через
INNER JOIN, то не забудьте индекс на
image добавить, и я бы делал не пустую строку а
NULLSELECT
p.product_id,
p.image
FROM oc_product_to_category c
INNER JOIN oc_product p ON p.product_id = c.product_id
AND p.image IS NOT NULL
WHERE c.id_categor = :categoryId
LIMIT 1