Ho questa query

$query = "SELECT id,nome FROM tab WHERE IFNULL(col_1 = 'si',id = 7) ";

quello che voglio ottenere è che se in col_1 c'è un valore 'si' allora deve essere selezionato quel valore altrimenti il WHERE sarà valido solo per id = 7.

Il problema è che provandolo i valori con 'si' escono ma se non ci sono valori con 'si' non mi da nessun risultato.