Hola vani18:
La sintaxis de la consulta, es correcta, sin embargo, pudieras tener un error de ejecución si (como lo deduces muy bien) la subconsulta regresa más de un valor. en este caso debes utilizar IN, de esta manera, no importa si la subconsulta te regresa NULL, 1 registro o N registros, la sentencia IN soporta todos los casos.
También podrías utilizar una JOIN para eliminar los registros, la sentencia sería más o menos así:
Al poner material.* estás especificando que sólo se eliminarán los elementos de la tabla material que cumplan con la condición de igualdad... el resultado debería ser el mismo. Haz la prueba y nos comentas.
Saludos
Leo.