Mira volvi a checar mi consulta la ejecute desde phpmyadmid
 
SELECT r.NOMBRE, r.ID_MATERIA, m.NOMBRE, m.ID_MATERIA
FROM materia m
LEFT JOIN materia r ON m.REQUISITO = r.ID_MATERIA
WHERE m.ID_MATERIA
IN (
'abc',  'dfe'
)
AND (
r.ID_MATERIA IS NOT NULL 
AND r.ID_MATERIA NOT 
IN (
'abc',  'dfe'
)
)  
y ya obtengo el resultado  
NOMBRE	ID_MATERIA	NOMBRE	ID_MATERIA
Matematicas	abc         	Cálculo Integral	dfe  
Osea me muestra bien los resultados... pero en mi form... muestra dos veces 
Calculo integral.... osea no muestra matematicas... 
dejo mi código  
 Código PHP:
        foreach($clases as $clase)
        $q_clase = quoted($clase);
        $listaMaterias="('".implode("','", $clases)."')";
        echo $listaMaterias;{
        $consulta =  "SELECT r.nombre,r.id_materia,m.nombre,m.id_materia  FROM materia m LEFT JOIN materia r ON m.requisito=r.id_materia WHERE m.id_materia IN $listaMaterias AND (r.id_materia IS NOT NULL AND r.id_materia NOT IN $listaMaterias)";
        $resultado = @mysql_query($consulta, $conexion) or die(mysql_error());
        
    }/*fin foreach*/
 
$query_clase = "SELECT r.NOMBRE,r.ID_MATERIA,m.NOMBRE,m.ID_MATERIA  FROM materia m LEFT JOIN materia r ON m.REQUISITO=r.ID_MATERIA WHERE m.ID_MATERIA IN ('abc', 'dfe') AND (r.ID_MATERIA IS NOT NULL AND r.ID_MATERIA NOT IN ('abc', 'dfe'))";
 
$result_clase = @mysql_query($query_clase, $conexion) or die(mysql_error());
$filas = mysql_num_rows($result_clase);
        if($filas != 0){#Algo va realmente mal si las filas son 0
            $clase = mysql_fetch_array($result_clase);
            
            echo "<tr>
                    <td>".$clase['CLAVE']."</td>
                    <td>".$clase['NOMBRE']."<br>".$clase['NOMBRE']."</td>
                    
                </tr>";
        }else{
            echo "<tr><td colspan=6>No seleccionó materias</td></td></tr>";
        }
 
    echo "";
    
    #Fin de tabla
    echo "</table>";
    
    piePagina();
    ?>