Можно так
$(document).ready(function() {
$('.photo li').waitForImages(function() {
$(this)[$(this).length ? 'show' : 'remove']();
});
});
но тут надо видеть функцию waitForImages, чтобы быть уверенным, что это будет работать. А пока меня грызут сомнения, т.к. метод применяется не к изображению, а к элементу LI. Если внутри callback-функции this ссылается на него, то всегда будет отрабатывать show()
UPD Пробуйте такой вариант:
$(function(){
$('.photo li').waitForImages({
each: function(loaded, count, success) {
$(this)[success ? 'show' : 'remove']();
},
waitForAll: true
});
});
Пример в песочнице. Второго изображения не существует