Синтаксически индекс не может быть из 0 колонок. Хоть что-то в индекс добавить придётся.
Планировщик может выбрать использовать частичный индекс если его префикс хорошо позволяет фильтровать выборку даже если поля в самом индексе для этого запроса вовсе не нужны. То есть для запроса
SELECT * FROM messages WHERE NOT is_sent
Одинаково подойдёт любой из:
CREATE INDEX messages0 ON messages USING btree (is_sent) WHERE NOT is_sent
CREATE INDEX messages0 ON messages USING btree ((true)) WHERE NOT is_sent
CREATE INDEX messages0 ON messages USING btree (id) WHERE NOT is_sent