Обходите массив товаров и запоминаете к каким категориям принадлежит каждый встреченный товар. Одновременно проверяете, принадлежит ли текущий товар к требуемым категориям. Если да, сохраняете его id в выходной массив. Типа так:
$categories = [1, 2]; // массив с категориями, к которым должны принадлежать товары
$goodsCategories = [];
$out = [];
foreach ($result as $n) {
$id = $n['id'];
$goodsCategories[$id][] = $n['category_id'];
if ($categories === $goodsCategories[$id] && !in_array($id, $out)) {
$out[] = $id;
}
}