There is no "custom_post_type Category" and the custom post type is not related to categories by default.
To understand it you need to visualize it like this: the WordPress default post type is called
post and the default taxonomy is called
category. and they are related by default in WordPress core.
I am mentioning this because in your query you use the
cat parameter which will search for the default
category which isn't linked to your custom post type.
You could link them like this after you register your custom post type:
register_taxonomy_for_object_type( 'category', 'collections' );
I can't recommend you the above since is harder to manage and creates weird logics.
My recommendation: if you create a custom post type(
collections) you need to register a new taxonomy(maybe called
collections_category) and link it to your
collections. Then you could query like this:
$args = array (
'posts_per_page' => 3,
'order' => 'DESC',
'post_type' => 'collections',
'tax_query' => array(
'taxonomy' => 'collections_category',
'field' => 'term_id',
'terms' => array( $cat_id ),