Your argument structure is not correct. It should be like
[meta_query] => Array
(
[0] => Array
(
[key] => state
[value] => a
[compare] => LIKE
)
[1] => Array
(
[key] => state
[value] => b
[compare] => LIKE
)
[2] => Array
(
[key] => state
[value] => c
[compare] => LIKE
)
[relation] => OR
)
But it is like
[meta_query] => Array
(
[relation] => OR
[0] => Array
(
[0] => Array
(
[relation] => OR
[0] => Array
(
[key] => state
[value] => a
[compare] => LIKE
)
)
[1] => Array
(
[relation] => OR
[0] => Array
(
[key] => state
[value] => b
[compare] => LIKE
)
)
[2] => Array
(
[relation] => OR
[0] => Array
(
[key] => state
[value] => c
[compare] => LIKE
)
)
)
)
Change your code in this way to match recommended structure
$statelist = array();
$args = array(
'post_type' => 'post',
'meta_query' => array(
'relation' => 'OR')
);
if($_GET['state'] != NULL)
{
$state_arr = explode( ',', $_GET['state']);
for($i=0; $i<count($state_arr); $i++)
{
//tried also with relation = OR for first entry
$current_arr = array(
'key' => 'state',
'value' => $state_arr[$i],
'compare' => 'LIKE'
);
array_push($statelist, $current_arr);
}
}
if(count($statelist) >= 1) {
$statelist['relation'] = 'OR';
$args['meta_query'] = $statelist;
}
Ref: https://codex.wordpress.org/Class_Reference/WP_Meta_Query