Ajax filter button display all posts

Going by what @JacobPeattie said, that they are still set but empty you need to change the conditional login to check for empty.

In our previous discussion I wrote this conditions

if ((isset($_POST['categoryfilter1']) && !empty($_POST['categoryfilter1'])) && (isset($_POST['categoryfilter2']) && !empty($_POST['categoryfilter2']))) {
    // both properties are set and have value (not empty)
} elseif ((isset($_POST['categoryfilter1']) && !empty($_POST['categoryfilter1'])) && (!isset($_POST['categoryfilter2']) || empty($_POST['categoryfilter2']))) {
    // only categoryfilter1 is set and has value and categoryfilter2 is either not set or set but has no value
} elseif ((!isset($_POST['categoryfilter1']) || empty($_POST['categoryfilter1'])) && (isset($_POST['categoryfilter2']) && !empty($_POST['categoryfilter2']))) {
    // only categoryfilter2 is set and has value and categoryfilter1 is either not set or set but has no value
}

Try using it and see if it helps

EDIT

I dont know what post type you want to get but try adding it to the $args as well.

So you initial $args will look like this

$args = array(
    'post_type' => 'post',
    // 'post_status' => 'publish', // this is optional, this will get only published posts
    'orderby' => 'date',
    'posts_per_page' => -1
);

I think that this creates the problem