How to pull a list of posts in a category while exluding posts in subcategories of the category

If you use category__in and category__not_in instead, it will only pull the posts that are in that category, not the subcategories as well. For your code, this would look something like this:

$args = array(
    'category__in'     => $cat,
    'category__not_in' => $catHidden
);

Note: this will only exclude posts that are directly in the category as well. If you want to exclude posts in that category and the subcategories of it, use cat with the negative syntax.

Also, if you need more powerful querying, this can be found with the tax_query parameter, which will allow you to set an include_children parameter for each taxonomy and term you are querying for.