Solucionado, es por el valor null.
Tengo que acostumbrarme en el insert a poner todos los campos tengan o no valor para poder usar el ='' o <>''. Si en el insert no especificas un campo este se guarda con valor null, creía tener esto solucionado en el alta pero no.
De hecho si me dejó borrar la encuesta 1003 y la 1002 no, porque el campo ENSELEC en la primera tenía valor Empty y en la segunda null.
No he modificado el código del insert, he modiificado el de borrado de esta manera:
Código:
Delete * from tencuestas where coen = 1001 and (enselec <> 'portada' or enselec is null)