Shop by category is missing when going to subcategory page

Layout wise, magento distinguishes categories as default categories and layered categories. Magento uses is anchor option in order to make this categorization. If is anchor is set to yes, then that category would be layered category and if it is set tono, then that category will treat as a default catetgory.

What happens when we set the property is anchor to yes ?

Then the category will become a layered category. A category which holds layered navigation section along with it. Layered navigation will hold product attribute list which we set to include in layered in layered navigation so that we can filter products in a particular category using those product attriubte. color attribute is an example.

Another important thing about layered category - it will display all products not only from the selected category, but from its subcategories.

In this case, magento will process a unique layout handle catalog_category_layered.

What happens when we set the proeprty is anchor to no ?

Now these categories become default categories. Categories which will not show layered navigation section. So product attribute filtering is not possible for this type of categories.

Also a default category only show products which are assigned with that category itself. There is no possibility that it will show products that comes under its child categories.

In this case, Magento will process a unique layout handle catalog_category_default.

What is the problem here ?

You set all of your categories to default, coz is anchor property of all categories is set to no in your case.

There is very interesting point that I need to share with you in this case. If you take Magento's default theme (base/default), you can see that, layout handle for default categories catalog_category_default actually defines a left section. It looks like this.

File : app/design/frontend/base/default/layout/catalog.xml

<catalog_category_default translate="label">
    <label>Catalog Category (Non-Anchor)</label>
    <reference name="left">
        <block type="catalog/navigation" name="catalog.leftnav" after="currency" template="catalog/navigation/left.phtml"/>
    </reference>
   ...
 </catalog_category_default>

This means it uses the block of type catalog/navigation in the left section. This block is actually responsible for the left content that you are viewing in a default category.

If you check inside catalog_category_layered, it uses another block of type catalog/layer_view to show the left section. So this block is obviously used to show the layered navigation section.

So the question is what is catalog/navigation block does for default categories ?

To answer the question, please have a look on the template file which is set with this block

 app/design/frontend/base/default/catalog/navigation/left.phtml

You will find this line there.

 <?php if (!Mage::registry('current_category')) return ?>
 <?php $_categories = $this->getCurrentChildCategories() ?>

It is clear that it collects all of its child categories and show as a link to filter. This means

category filtering is always available in every category irrespective of the value set to the field is anchor

So if you can see categories for a parent category and it seems empty for a child category, then that means the child category that you are describing actually does not hold any other child categories. At least this is the default case.

If the child category that you are referencing actually holds other child categories, then I am sure that some customization on the default behaviour is took place and you need to trace it out !!