Я так понял, вы в sql новичок? Запрос примерно такой:
select * from категории, товары, варианты
where варианты.product_id = товары.id and товары.cat_id = категории.id
Но имена категорий и товаров будут повторяться. Как сказано выше, вам нужно будет уже в php позабодиться о том, чтобы правильно вывести данные. Однако следует помнить, что для производительности зачастую лучше несколько легких запросов чем один тяжелый.