Pagination not working properly

Don’t use query_posts in the template. If you delete that line, your template will paginate correctly.

If you want to alter the main query, use the pre_get_posts action.

Currently, your query overwrites the default main query, and you don’t set any pagination parameters within the query, so you’re always going to get the first 10 posts.