View Achive with Category Filter, but Page per post not working

The problem is that you’re stomping the main query by using query_posts(). Don’t do that.

Instead, filter the main query via pre_get_posts:

function wpse82113_filter_pre_get_posts( $query ) {
    if ( is_category( 7 ) && $query->is_main_query() ) {
        $query->set( 'posts_per_page', '6' );
    }
}
add_action( 'pre_get_posts', 'wpse82113_filter_pre_get_posts' );