Hi Ckili,
The problem with out-of-the-box SQL receive adapters in InfoPath is that they don't allow dynamic parameters based on a value in the form. You can write code to do this, but that will then require SQL Client permissions and a full trust form. Not a good idea.
A better idea is to just install Qdabra's DBXL Web service. You use the Query Builder tool (an InfoPath form) to create two query strings and then add data connections with those query strings to your form. The first data connection has a query pulls from the first table. The second query pulls from the second table but with a filter set to the value of the first dropdown. Your data connections just call the QueryDB Web service and specify the query strings. The Web service does the rest. Easy stuff. Once you get DBXL installed, it should take no more than 30 minutes. We can show you how to do this in less than that. Let me know if you want a demo.
To do this without DBXL, you would have to pull all values into your form and use form-based filtering to do it. That's easy too, but isn't scalable if you have many items. You just set the values in the ID list with a filter forcing them to have a parent that matches the Category.
Best of luck!