tecnicamente el codigo no tiene nada mal. es decir, la sintaxis, propiedades y sentencias son correctas. pueden haber multiples razones. pudiera ser como javascript representa dicho valor. es decir, "#ffff00" no es lo mismo que "#FFFF00". si este es el caso, te recomiendo que siempre conviertas el string en una capitalizacion que tu puedas manejar. por ejemplo, tidas mayusculas o minusculas.
Código:
if(element.style.backgroundColor.toUpperCase() != "#FFFF00")
la otra razon puede ser que el elemento en particular no tiene declarado dicho estilo en el atributo style.
Código:
<elemento style="background-color:#ffff00;">
entiendase que para javascript no es lo mismo leer el valor desde una propiedad que desde la hoja de estilo. ya este ultimo requiere un proceso diferente.