А в чем сложность?
Берем таблицу товаров (goods), подключаем таблицу категорий (category), по parent_id получаем товары одной категории родителя.
select distinct g.*
from goods g
join category c on c.id = g.category_id
and c.parent_id = 34
Если у вас товары входят в несколько категорий, то наверняка, есть промежуточная таблица связей "многие ко многим", то запрос будет примерно такой:
select distinct g.*
from goods g
join good_category_hold gch on g.id = gch.good_id
join category c on c.id = gch.category_id
and c.parent_id = 34