Хм, не съм сигурен, че това е най-добрият начин да го направите, но може да бъде добавен към вашата вече съществуваща заявка доста лесно:
SELECT *
FROM products
WHERE p_show='Y'
AND p_id IN (SELECT p_id
FROM prods_2cats AS PC
WHERE PC.cat_id = $cat1_id)
AND p_id IN (SELECT p_id
FROM prods_2cats AS PC2
WHERE PC2.cat_id = $cat2_id)