He encontrado y solucionado el problema y lo cuento por si a alguien más le pasa lo mismo:
Este era el código que producía errores:
Código:
var url = 'getSubfamilias.php?familia=' + familia;
xmlhttp.open('GET', encodeURIComponent(url), true);
Y esta la solución
Código:
var url = 'getSubfamilias.php?familia=' + encodeURIComponent(familia);
xmlhttp.open('GET', url, true);
El problema estaba en que encodeURIComponent() codifica también el signo "?" que usa GET en la URL, corrompiendo así la cadena y produciendo un error de "File not found"
Saludos
CM
PD: Lo detecté probando con encodeURI(), que deja intacto el signo "?". Eso me dió la pista.