What about this one?
function opby_query( $query ) {
if ( $query->is_main_query() ) {
if ( $query->is_home() ) {
$query->set('posts_per_page', 15);
};
if ( isset( $query->query_vars['ctrl_podcasts_status'] ) ) {
// get main query args
$subquery_args = $query->query_vars;
// add tax_query filter
$subquery_args['tax_query'] = array( array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => array( 'podcast-control-daily' ),
'operator'=> 'IN'
) );
// get only the first post
$subquery_args['posts_per_page'] = 1;
// we need only post IDs
$subquery_args['fields'] = 'ids';
// run the subquery
$exclude_posts = get_posts( $subquery_args );
if ( is_array( $exclude_posts ) ) {
$query->set( 'post__not_in', $exclude_posts );
}
}
}
return $query;
}