Вы можете отменить свое состояние
Book.where("NOT('fantasy' = ANY (tags))")
Таким образом, вы можете изменить запрос для получения записей с записями NULL:
Book.where("NOT('fantasy' = ANY (tags)) or tags IS NULL")
Также вы можете запускать эти запросы в psql
и проверять результаты
SELECT * FROM book WHERE NOT('fantasy' = ANY (tags));
SELECT * FROM book WHERE NOT('fantasy' = ANY (tags)) OR tags IS NULL;
SELECT * FROM book WHERE 'fantasy' = ANY (tags)
Может быть, нет записей без тега 'fantasy'?