Pagination not working in home page

<?php $the_query = new WP_Query( 'cat=-7,-3' ); ?> is the cause of your problems, WordPress has taken care of the pagination, then you’ve thrown it away and not told your new query anything about the page you’re currently on, so it defaults to the first.

It’s equivalent to asking someone for a cup of tea, waiting 20 minutes for the kettle to boil, the tea to brew, then finally saying “I never wanted tea at all, go make me coffee”

As a result, WordPress is doing twice as much work, slowing your page down. You’re also going to face issues when plugins try to modify the main query for functionality, only to find you never use it.

If you want to modify what posts WordPress fetches from the database, you should modify the main query before it’s ran, rather than discarding it afterwards. You do this by using the pre_get_posts filter, e.g.:

// show only 1 category on the homepage
function my_home_category( $query ) {
    if ( $query->is_home() && $query->is_main_query() ) {
        $query->set( 'cat', '123' );
    }
}
add_action( 'pre_get_posts', 'my_home_category' );

You now have everything you need to re-implement your code to not need the WP_Query, refer to the links at the end of this answer for more information that may be helpful ( I strongly recommend you read them, it will save you a lot of time and hassle )

I’d also recommend you do not use index.php as your homepage, it’s the main fallback template file, and should act as a safety net/catch all for when WordPress doesn’t know which template to load. Instead consider using home.php

Further Reading