En primer lugar, el WHERE no existe en el INSERT.
En segundo lugar, MySQL no admite (y tampoco otros DBMS) que se consulte la misma tabla que se está insertando.
Si DNI es PK, lo más simple es hacer un INSERT IGNORE:
Código MySQL:
Ver originalINSERT IGNORE INTO Persona
(DNI
, Nom
, Cognom
, Contrasenya
, Direccio
, CP
, Ciutat
, EMail
, Telef
) VALUES('$DNI_entiti', '$Nombre_entiti', '$Apellidos_entiti', MD5('$PSW_entiti'), '$Direccion_entiti', '$CP_entiti', '$Ciudad_entiti', '$Email_entiti', '$Mobil_entiti')
Eso simplemente no generará mensajes de error si el DNI ya existe.
Eso si: para que se cumpla,
DNI debe ser la clave primaria.