En el else al momento de pintar la fila deberias poner el color por defecto, ya que la view en la segunda vuelta ya se encuentra "precargada" con los valores que se establecieron anteriormente
Código:
//Asignamos el color de fondo en caso que el item no ha sido leido
if(c.getString(c.getColumnIndexOrThrow("unread")).equals("1")){
rowView.setBackgroundColor(Color.BLUE);
} else {
rowView.setBackgroundColor(Color.TRANSPARENT);
}