How select a specific query when setting offset?

If you only wish to effect the one, single query then just can pass the offset argument through the arguments array.

$offset = 1;
$ppp = 3;

if ( $query->is_paged ) {
    $page_offset = $offset + ( ($query->query_vars['paged']-1) * $ppp );
}

blog_items = array(
    'post_type'=> 'post',
    'paged' => $paged,
    'posts_per_page'=> $ppp,
    'status' => 'publish',
    'offset' => $offset
);

$blogposts = get_posts($blog_items);

But since you are trying to paginate you may still have trouble with that. It may work better to push all of the arguments through pre_get_posts not just some of them:

// in functions.php
add_action('pre_get_posts', 'myprefix_query_offset', 1 );
function myprefix_query_offset(&$query) {

    if (is_main_query() || is_page_template( 'page-blog.php' ) ) {

      $offset = 1;
      $ppp = 3;

      if ( $query->is_paged ) {
          $page_offset = $offset + ( ($query->query_vars['paged']-1) * $ppp );
          $query->set('offset', $page_offset );
      }
      else {
          $query->set('offset',$offset);
      }

      $query->set('post_type','post');
      $query->set('paged',$paged);
      $query->set('posts_per_page',3);
      $query->set('status','publish');

    }
}

Then a normal loop in the page template should work:

if(have_posts()) {
  while(have_posts()) {
    the_post();

  }
}

Use remove_action('pre_get_posts', 'myprefix_query_offset', 1 ); to remove the action.