Объеденить SQL 3 запроса в 1 массив
select p.*, p_g.*, p_i.*
from `product` p
left join `product_group` p_g ON p_g.id = p.group_id
left join `product_image` p_i ON p_i.product_id = p.id
ORDER BY p_i.`product_id` ASC
LIMIT 0, 200
Вот такой запрос позволит получить все данные одним запросом в один массив.
В SELECT перечислите нужные поля, чтобы не было overhead
Интересно, что ваш цикл, в таком случае, будет делать.