SELECT COUNT(*) FROM gen_lenta WHERE lenta_id IN (SELECT id FROM lenta_bundle)
NULL в lenta_id не попадается; lenta_bundle.id BIGINT и gen_lenta.lenta_id тоже BIGINT (на всякий случай)
Версия 9.5; Кластер: 9.4 Melkij: explain analyze тоже не могу продемонстрировать, так же уходит в завис
Сложно конечно дать совет не видя реальных объёмов данных и ситуации "наживую", но подозреваю, что данных очень много и запрос скорее всего не "завис", а просто очень долго выполняется. Нужен анализ запроса, запроса который будет выполнятся неизвестное кол-во времени, по непонятной причине, т.к. нет анализа запроса :) Попробуйте способ из ответа ниже, я пожалуй пока воздержусь от каких-то конкретных рекомендаций.
Конструкцию NOT IN лучше применять, если подзапрос возвращает менее десятка-двух записей. Эта конструкция при большом объёме данных сжирает кучу ресурсов, в том числе и оперативной памяти.
Используйте подход Oleg или конструкцию NOT EXISTS