Mira si no te importa usar varios bucles podrias hacer esto:
Código PHP:
$colores = array();
while( $row = mysql_fetch_array( $consul1 ) ) { // obtener todos
$colores[$row["id"]] = $row["color"];
}
$marcados = array();
while( $row = mysql_fetch_array( $consul2 ) ) { // obtener los marcados
$marcados[] = $row["id"];
}
foreach( $colores as $id => $color ) {
$template = "<input type=\"checkbox\" name=\"colores\" value=\"%s\"%s>%s";
$selected = "";
if( in_array( $id, $marcados ) ) $selected = " checked=\"checked\"";
echo sprintf( $template, $id, $selected, $color );
}