Welcome to Magento.SE! A few things here:
Firstly:
Instead of doing this:
$category = new Mage_Catalog_Model_Category();
$category->load(111); //cat_id
Do this:
$category = Mage::getModel('catalog/category')->load(111);
The reason being is that you get the benefit of Magento's rewrite system - that way you know you're always using the registered rewrite.
Second:
Instead of loading the category and then loading products, rather load the product collection and filter by category association:
$category = Mage::getModel('catalog/category')->load(111);
$collection = Mage::getModel('catalog/product')
->getCollection()
->addCategoryFilter($category)
->addAttributeToSelect('*');
You could optimize this by filtering only by category id and not loading the category at all:
$categoryId = 35;
$collection = Mage::getModel('catalog/product')
->getCollection()
->addAttributeToSelect('*')
->addAttributeToFilter('category_ids',array('finset'=>$categoryId));