How to remove slugs from multiple custom post types

Looks like you have your if doing the opposite of what you want. You’re returning the unaltered link if you’re on ‘furniture-type’ or ‘pop-tags’.

This should work:

function hf_remove_slug( $post_link, $post, $leavename ) {

    if(('pop-tags' == $post->post_type || 'furniture-type' == $post->post_type) && 'publish' == $post->post_status) {
        $post_link = str_replace( "https://wordpress.stackexchange.com/" . $post->post_type . "https://wordpress.stackexchange.com/", "https://wordpress.stackexchange.com/", $post_link);
        return $post_link;
    }

   return $post_link;
}