Einen Fehler habe ich gefunden:
Es muss heißen "IS NOT NULL" anstatt "NOT IS NULL":
INSERT INTO translation1 (lang, keyval, trans)
(
SELECT 'de',keyval,de FROM translation WHERE (de IS NOT NULL) UNION
SELECT 'en',keyval,en FROM translation WHERE (en IS NOT NULL) UNION
SELECT 'fr',keyval,fr FROM translation WHERE (fr IS NOT NULL) UNION
SELECT 'it',keyval,it FROM translation WHERE (it IS NOT NULL) UNION
SELECT 'es',keyval,es FROM translation WHERE (es IS NOT NULL) UNION
SELECT 'el',keyval,el FROM translation WHERE (el IS NOT NULL) UNION
SELECT 'nl',keyval,nl FROM translation WHERE (nl IS NOT NULL)
)
Klappt aber immer noch nicht.