Presumo che il tuo tavolo si chiami tbl.
INSERT INTO tbl (campoX )
SELECT 'X' FROM DUAL
WHERE NOT EXISTS(
SELECT campoX from tbl
WHERE campoX ='X'
);
DUAL
è puramente per comodità delle persone che richiedono che tutte le istruzioni SELECT contengano FROM e possibilmente altre clausole. MySQL può ignorare le clausole. MySQL non richiede FROM DUAL se non viene fatto riferimento a tabelle.
Come altri hanno già detto, potresti usare INSERT IGNORE
dichiarazione qui SE il tuo campoX è un campo chiave unigue o primario.