Nice example. Here is a code snippet I have used in the past force an empty data set to generate output - I simply create an empty row.

Tweak as you see fit.

data empty;
/* create the empty data set */
set sashelp.class;
stop;
run;

data showColumns;
/* force it to have rows if it is empty */
if _n_ = 1 and lr then
do; /* data set is empty */
call symputx('title','Data Set is Empty');
output;
end; /* data set is empty */
else call symputx('title','Listing of Data Set Empty');
set empty end = lr;
output;
run;

proc print data=showColumns noobs;
title &title;
run;