Ho scritto al volo questo codice, non l'ho provato, quindi potrebbe esserci qualche errore.
Questo controlla la stessa cartella in cui si trova il file php, puoi decidere tu quale cartella fargli controllare modificando la variabile $dir e passando il giusto percorso e nome file alla funzione is_file
Codice PHP:
<?php
    $immagini 
= array();
    
$dir ".";
    
$files scandir($dir); //leggo il contenuto della cartella corrente
    
foreach($files as $file) { //per ogni elemento trovato
        
if(is_file($file)) { //se è un file
            
$immagini[] = $file//lo aggiungo in un array che conterrà solo file
        
}
    }
    foreach(
$immagini as $img) { //per ogni file nell'array
        
$query "SELECT * FROM tabella WHERE immagine = $img"//cerco nel db una entry con tale file
        
$result mysql_query($query); //effettuo la query
        
if(mysql_num_rows($result) == 0) { //se non trovo niente
            
unset($img); //cancello il file
        
}
    }
?>