Your query should work as is. To test this, I created 4 posts, and then using WP CLI, ran:
wp post meta add 10 boxzilla_options "testingtesting123"
Where post 10 is a post with the title test. 3 other posts existed that did not have the post meta.
To test that the post meta key/value pair did indeed exist, I ran this code:
wp> get_post_meta( 10 );
=> array(2) {
["_edit_lock"]=>
array(1) {
[0]=>
string(12) "1571337707:1"
}
["boxzilla_options"]=>
array(1) {
[0]=>
string(17) "testingtesting123"
}
}
I then opened wp shell
and ran this code:
wp> $args = ['post_status' => 'publish', 'meta_query' => [['key' => 'boxzilla_options','compare' => 'EXISTS']] ];
=> array(2) {
["post_status"]=>
string(7) "publish"
["meta_query"]=>
array(1) {
[0]=>
array(2) {
["key"]=>
string(16) "boxzilla_options"
["compare"]=>
string(6) "EXISTS"
}
}
}
wp> $posts = get_posts( $args );
The resulting $posts
array contained the desired post with ID 10:
wp> $posts = get_posts( $args );
=> array(1) {
[0]=>
object(WP_Post)#1903 (24) {
["ID"]=>
int(10)
["post_author"]=>
string(1) "1"
["post_date"]=>
string(19) "2019-10-17 18:44:10"
["post_date_gmt"]=>
etc...
Thus, the problem is likely the Boxzilla plugin, which means that further help on WPSE is not possible. You should contact Boxzilla support