Mira el ejemplo del otro post y usa LEFT JOIN del mismo modo. Lo unico que cambia son las tablas, pero la logica es la misma. Usar subconsultas en el WHERE es ineficiente si esa subconsulta duelve muchos registros, como te pasaría en tu caso.
En esencial, lo que debes hacer es un LEFT JOIN entre la tabla de Materiales y la de Compuesto_Por, tal que lo devuelto en la segunda tabla sea NULL.