Una forma de resolver un problema como este es usar una subconsulta con una variable de usuario. Puede rastrear el valor del color de la fila anterior usando la variable de usuario y luego usar la variable de usuario en la cláusula where de la consulta externa para filtrar las filas que devuelve.
Prueba algo como esto:
select id,this_color as color
from
(
select id,@last as last_color,@last:=color as this_color
from your_table
order by id
) as sub
where this_color != last_color