Verás, elegir todos es un campo es no establecer filtro. Me explicaré con algunos de tus ejemplos:
1) -- si color_prenda = todos AND size = todas
esto equivale a
2)
y esto equivale a
Observa que cuando el valor que pasas por la variable es "todos" o "todas", simplemente no tienes que filtrar por ese campo
Así de fácil. Prueba y nos dices. Luego hay que controlar cuando todos tienen "todos" se puede usar las sintaxis del filtro así:
WHERE 1
Para el modo de hacerlo, puedes pedir ayuda en el foro de programación, pues aquí solo podemos darte respuestas de bases de datos y de lenguaje de consulta SQL. No olvides que la cadena de consulta, la sintaxis de la consulta debes hacerla con programación según los datos que te llegan del formulario.