Understand your query as the following (explaining bar talk mode):
You want to know if there are products of the 'Dresses' category and the 'White' color and if it is not that (OR) that is of the color 'Rosa', that is, it forgets the previous two conditions and starts to interpret only the last one, or if there are results for both conditions it returns.
So if the condition color = 'Rose' is part of the category category = 'Dresses', your query should associate the 'ORs' with parentheses, being:
SELECT * FROM produtos WHERE categoria = 'Vestidos' AND (cor = 'Branco' OR cor = 'Rosa')
The right way