why is this script not working on my site

Consider this option of achieving what you seem to be requiring:

function wpse31701_filter_query() {
    global $wp_query;
    // Check year and month
    if ( $wp_query->get( 'year' ) == 2005 and $wp_query->get( 'monthnum' ) == 5 )
        // Check page number to apply offset
        if ( $wp_query->get( 'paged') > 1 ) $wp_query->set( 'offset', 1 );
        else $wp_query->set( 'posts_per_page', 1);
}
add_action( 'pre_get_posts', 'wpse31701_filter_query' );

Here we alter the query as soon as $the_query is ready to get the posts, to modify the posts_per_page to 1 if paged is 1, and apply and offset of 1 post if paged is > 1.

The important thing is to apply offset and posts_per_page; the rest is purely conditional so apply to taste.