Немного сумбурно и странно звучит вопрос.
Насколько я понимаю, вы выводите или не выводите блок div по своему усмотрению, а после него в обязательном порядке выводится блок с изображением, в который вы не можете вмешиваться.
В таком случае желание не показывать блок в коде противоречит условию задачи. Ведь выводить или не выводить мы узнаём позже, причём на стороне клиента с помощью js. Так что в коде блок должен присутствовать обязательно.
Получается, что задачу можно переформулировать так: не показывать блок div до тех пор, пока не будет обнаружено изображение.
Делается это, очевидно, путём изначальной невидимости блока div.
.block {display:none}
Далее скриптом отслеживаем появление изображения, и меняем свойство невидимости у блока.