SELECT IF sarebbe perfetto, se solo eseguisse anche istruzioni e non gestisse SOLO un dato da restituire..
Perchè non provi così:

Codice PHP:
$sql "UPDATE utenti SET 
username = IF (utenti.Ragione_Sociale = '', Cognome, utenti.Ragione_Sociale), 
password = MD5(Codice) WHERE 
(username IS NULL OR username = '') AND (password IS NULL OR password = '')"