meta_query Where the key value is stored as an array

Thanks to the help of @JacobPeattie the problem was how the data was being saved. So instead of:

    if(isset($_POST['assign-classes'])) {            
        update_post_meta( $post->ID, 'assign-classes', $_POST['assign-classes'] );
    }

It is now:

delete_post_meta($post->ID, "assign-classes");
    for($i = 0; $i < count($_POST['assign-classes-all']); $i++){
        add_post_meta( $post->ID, 'assign-classes', $_POST['assign-classes-all'][$i], false );
    }

Only thing that was weird is that at first I tried a foreach loop which would not iterate more than one time. However, a for loop would.