На самом деле дело обстоит следующим образом:
Записи обо всех загруженных изображениях есть в `cms_upload_images`, без разницы, отображается это изображение на страницах сайта или нет.
При удалении или редактировании эти записи тоже не удаляются, как и сами изображения. Так что сравнивать список файлов с этой таблицей смысла нет.
Но, ссылки на существующие ссылки на папку, например, /upload/comments есть в таблице cms_comments в колонке content_bbcode.
Также в этой колонке лежит куча всяких смайликов и прочей шелухи, поэтому для вывода только картинок использовал следующий код:
$sql = "SELECT content_bbcode FROM $table_name WHERE (locate('/upload/comments/',content)>0) ORDER BY id ";
Теперь список имен картинок реально отображаемых на сайте отлично выводится. Осталось как-то сравнить с этой кучей список самих картинок, лежащих в папке /upload/comments
$dir = 'upload/comments/';
foreach ($f as $file){
$file= "/upload/comments/".$file.'<br/>';
echo $file;
И удалить те, которые совпадения с записями в content_bbcode не имеют.