Ajax category filtering products default show all

First, you should use the REST API for frontend instead of admin-ajax.
Second, you should not use unfiltered POST values.
And for your products on page load, you should tell your Javascript to fill the ID “response”, when the ID is present.
Now, you only load products, when the click event on the class js-filter-item happens.
Try it with a helper function like this.

(function($){$(document).ready(function(){

if ($('#response').length){

  function load_all_products() {
    var category = $(this).data('category');

    $.ajax({
        url: wpAjax.ajaxUrl,
        data: { 
            action: 'filterterm', 
            category: category, 
            taxonomy:  $(this).data('taxonomy'),
            posttype:  $(this).data('posttype')
            },
        type: 'post',
        success: function(result){
            $('#response').html(result);
        },
        error: function(result){
            console.warn(result);
        }
    });
  }

  load_all_products();

  $('.js-filter-item').on('click', function(event){
      (event).preventDefault();
      load_all_products();
  });
}

});
})(jQuery);

This is untestet and will not work by copy and paste, but maybe you get the idea.
When the ID “response” is present, call the function load_all_products().
When you click on a filter with the class “js-filter-item”, call this function with selected button/filter/whatever.
You may have to change the $(this).data(xxx) calls to correct values.
For pagination you have to add page variable.