How to ignore posts in pre_get_posts?

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;
}