How Display Posts on category

You should look at the WordPress Template Hierarchy. If you want to show an archive of your posts you create a template called archive-mahsulat.php where mahsulat is your post type. Then you can add a normal WordPress Loop to the file so it can output posts of that type.

If you’re looking to create a category page for your post type you first need to register a taxonomy. Then you can create a archive page called taxonomy-{$taxonomy}.php where {$taxonomy} would be replaced with your specific taxonomy slug.

You don’t need to create a custom secondary query for these things, if the PHP template pages exist and are named properly then WordPress will connect the dots and query the data for you.