WP-pagination并从页面中排除类别

I'm trying to use WP pagination on post archive page but exclude posts from one category to be shown there.

When I add this to my code the page2,3,4... of the archive display the same first 10 posts:

<?php query_posts('cat=-4');?>

This is the whole code of my page template so I would be grateful for all your help:

<?php 
/*
Template Name: Post archive
*/
?>

<?php get_header(); ?>

<div class="container">
        <div class="content col-md-9">
            <div class="home-content">          

                <!-- Show posts -->
                <?php 

                    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;

                    $args = array(
                                'paged'=> $paged, 
                                'posts_per_page'=> 10
                        );

                        query_posts($args); ?>
                    <?php query_posts('cat=-4');?>
                    <?php if ( have_posts() ) : while (have_posts()) : the_post(); ?>

                    <div style="float:left; margin:1%;">
                    <?php 
                    if ( has_post_thumbnail() ) { // check if the post has a Post Thumbnail assigned to it.
                        the_post_thumbnail( 'thumbnail', array( 'class' => 'img-post')); // show featured image
                    }

                    ?>
                    </div>
                    <h1 class="post-thumb"><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h1>
                    <h4>Category: <?php the_category(', '); ?></h4>
                    <p><?php the_excerpt(); ?></p>
                    <hr style="margin-bottom:5%">
                    <?php endwhile; ?>
                    <!-- pagination -->
                    <div class="nav-previous alignleft" style="margin-top:-1%"><?php next_posts_link( 'See older posts' ); ?></div>
                    <div class="nav-next alignright" style="margin-top:-1%"><?php previous_posts_link( 'See newer posts' ); ?></div>
                    <?php else : ?>
                       <p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
                    <?php endif; ?>

            </div>
        </div>

        <div class="col-md-3 sidebar unstyled">
                <?php dynamic_sidebar( 'home1' );   ?>
        </div>
        <div class="col-md-3 sidebar unstyled sidebar-space">
                <?php dynamic_sidebar( 'home2' );   ?>
        </div>
        <div class="col-md-3 sidebar unstyled sidebar-space">
                <?php dynamic_sidebar( 'articles1' );   ?>
        </div>

</div>
        </div>
    </body>
</html>

<?php get_footer(); ?>

Modifying to reflect OP's solution for benefit of future readers

Change query() slightly as shown below

$args = array(
     'cat'=> -4, 
     'posts_per_page'=> 10,
     'paged'=> $paged
      );

This code fixed my page:

<?php 

                    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;

                    $args = array(
                                'cat'=> -4,
                                'paged'=> $paged, 
                                'posts_per_page'=> 10
                        );

                        query_posts($args); ?>

                    <?php if ( have_posts() ) : while (have_posts()) : the_post(); ?>