Можете да добавите having
клауза към вашата заявка, за да се уверите, че всяка група c.id има и четирите cp.product_id:
SELECT
c.id as company_id
FROM
`companies` as c
LEFT JOIN `company_products` cp ON cp.company_id = c.id
WHERE
c.id IN (8, 13)
AND cp.product_id IN (1,2,4,8)
GROUP BY
c.id
HAVING COUNT(DISTINCT cp.product_id) = 4;
Ако имате нужда и от подробности за продукта, можете да използвате горната заявка като производна таблица и да я присъедините към таблицата с продуктите.