Всем спасибо за помощь в решении вопроса! Хорошо, что были только подсказки, а не сразу ответ, так хоть знания подтянул, лучше стал SQL понимать. Главное задать правильное направление)
Dmitry Bay, на счёт шуток про голову, конечно вы профессионалы, для вас задача по данному вопросу легкая, для меня сложная, программирование начал изучать пол года назад, ещё не во всём разобрался, мало уделил внимания SQL запросам.
golentor, спасибо за подсказку. Запрос, который выполняет мою задачу:
SELECT * FROM (SELECT `product`.* FROM `product` LEFT JOIN `brand` ON `product`.`brand_id` = `brand`.`id` LEFT JOIN `value_product` as `vp1` ON `product`.`id` = `vp1`.`product_id` LEFT JOIN `value_product` as `vp2` ON `product`.`id` = `vp2`.`product_id` LEFT JOIN `property_values` as `value1` ON `vp1`.`value_id` = `value1`.`id` LEFT JOIN `property_values` as `value2` ON `vp2`.`value_id` = `value2`.`id` WHERE (`category_id`='20') AND (`value1`.`value` IN ('12', '24')) AND (`value2`.`value` = '12 шт') GROUP BY `id`) `c`