When you reuse a Magento collection instance, filters stack up unintentionally. Query simple products, then configurable products, and both filters stay active. Call clear() and reset() before the second query to start fresh.
Chapters
In Magento, if you try to query a collection multiple times with any single function, you'll run into some issues. For example, here's a simple query that just grabs the simple products and outputs the query statement. So if we go ahead and execute this we will see that this is just a select all where the products are of type simple. Now let's go ahead and add a second query here to grab the configurable products and then output it to the screen. You will see that this query now contains both filters rather than just a our configurable filter which is probably what we want in some scenarios. It's quite easy to fix this. Before our second filter, let's go ahead and run a clear. This will basically clear any attributes that have been assigned to the collection and then we need to run a reset. This resets the select statement, so any other filters or attributes that have been added to the query are now removed. Now when this code is re executed we will get our proper configurable statement and nothing else.