That just boggles my mind, that someone would publicly distribute a template with such a basic function eliminated in the PHP code. If they thought that product listing pages would be better without the product listings (you make sense of that, I can't), they could have added rules to the stylesheet to hide what they wanted, making it easy for the user (the reason for the template) to adapt it to their needs.
It also annoys me, because (like the hsyong mess) it forces the support forum volunteers to take time fixing someone else's mistake for innocent newbies over and over again.
Okay, amending my comments...
The stock product_listing.php has an old section of code that you describe commented out (it created a display just like the "all products" listing), and that section is not necessary or desired for ordinary product listing function. Uncommenting that would not make the listing work, so there must have been something else in the file that was wrong. It is not possible to say more without seeing the actual file before you "fixed" it.