Данный фильтр - слишком избыточен. Его можно переписать через
SELECT * FROM products WHERE id IN (
SELECT product_id FROM filters_products WHERE
(filter_id = 1 AND filter_value BETWEEN 1000 AND 4000)
OR
(filter_id = 3 AND (filter_value = 'Intel® Core™ i5 11400F' OR filter_value = 'AMD Ryzen 5 5600G'))
OR
(filter_id = 2 AND filter_value = 6)
);
В оригинальном запросе стоял INSERSECT и по идее надо было заменять предикаты на AND.
Но я поставил OR поскольку мне кажется что автор тоже ошибается и INSERSECT - это
слишком строгий фильтр и пересечение с ключами 1-2-3 даст пустоту. И скорее всего
там надо объединение а не пересечение.
Просадки-шмосадки... Будут или нет. Никто не знает. Смотрим execution план в двух вариантах. И сравниваем.
Еще раз я призываю всех SQL писателей - указывать целевую dbms.