Load Custom_post_type categories post with ajax

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(
        array(
            'taxonomy' => 'collections_category',
            'field'    => 'term_id',
            'terms'    => array( $cat_id ),
        ),
    ),
  );