Я, конечно, не знаком с таблицей, поэтому лучший ответ, который я могу дать вам сейчас, - почему этот запрос не работает.
выберите e.active из состояний e, где e.active = true AND # {filter_estates}) как estate_status
эта строка возвращает более одной строки, что вы не можете сделать там. Заметьте, что ваши другие используют функции aggegrate, поэтому они возвращают только одну строку.
О, я не очень часто использую My SQL, но в T-SQL мы часто делаем такие вещи, как max (e.active) или, возможно, ставим топ-1 (который я считаю Limit 1 в моем sQL)