"а надо
SELECT 1 FROM `subscriptions` WHERE (`subscriptions`.`email` = BINARY 'newmail@mail.com') AND (`subscriptions`.'subscribe' = '1') LIMIT 1" - запрос неверный, потому что может быть два мыла в базе, одно со включенной подпиской, одно с выключенной.
А насчет валидации согласен с ibub1ik - лучше сделать отдельным классом.