Hola como estas.
Si mal no entiendo creo que quieres que te salgan los items que tengan ambos colores. Si es así entonces intenta:
Código SQL:
Ver originalSELECT *
FROM articulos
WHERE
(color1 = $color1 AND (color2 = $color2 OR color3 = $color2 OR color4 = $color2))
OR (color1 = $color2 AND (color2 = $color1 OR color3 = $color1 OR color4 = $color1))
OR (color2 = $color1 AND (color1 = $color2 OR color3 = $color2 OR color4 = $color2))
OR (color2 = $color2 AND (color1 = $color1 OR color3 = $color1 OR color4 = $color1))
OR (color3 = $color1 AND (color1 = $color2 OR color2 = $color2 OR color4 = $color2))
OR (color3 = $color2 AND (color1 = $color1 OR color2 = $color1 OR color4 = $color1))
OR (color4 = $color1 AND (color1 = $color2 OR color2 = $color2 OR color3 = $color2))
OR (color4 = $color2 AND (color1 = $color1 OR color2 = $color1 OR color3 = $color1))
Lo que hace el where es probar todas las combinaciones posibles que se pueden dar en los items.
Eso es todo, pruebalo a ver si te sirve.