así tendrán que aparecer las 4:
SELECT * from TABLA1 WHERE MATCH(campo1) AGAINST ('+ANIMAL, +DOMESTICO' IN BOOLEAN MODE) AND MATCH(campo2) AGAINST ('+PEQUEÑO, +BONITO' IN BOOLEAN MODE)
el más + indica obligado.
Mira la información sobre las búsquedas boolean full-text
http://dev.mysql.com/doc/refman/5.0/...t-boolean.html
Lo segundo no se hace con la base, sino con programación. Te bastará controlar que cuando no escribas nada en los campos del formulario haga un select de todos los registros. Pregunta en el foro de tu programa.