Normalmente você faria isso com a restrição CHECK:
foo_test VARCHAR(50) NOT NULL CHECK (foo_test <> '')
Antes da versão 8.0, o MySQL tinha suporte limitado para restrições. Do Manual de referência do MySQL :
A cláusula CHECK é analisada, mas ignorada por todos os mecanismos de armazenamento.
Se você deve manter uma versão antiga, use triggers como uma solução alternativa, como as pessoas apontaram.
No futuro, você pode querer dar uma olhada no PostgreSQL , que é considerado como tendo melhor suporte para integridade de dados (entre outras coisas ) por muitas pessoas .