Where do you want this? On your home page. Is this template used for other page requests as well (category, archives, etc..). It’s best you use one loop and just add a post from cat 2 after every post from cat 1.
Here is an example on how you can do this:
<?php
// change these category IDs to your category IDs
$cat_1_id = 1;
$cat_2_id = 2;
$posts_per_page = get_option( 'posts_per_page' );
// set the paged variable
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
?>
<?php
// the query for category 1
$args = array(
'posts_per_page' => $posts_per_page,
'paged' => $paged,
'cat' => $cat_1_id,
);
$cat_1_query = new WP_Query( $args );
?>
<?php
// the query for category 2
$args['cat'] = $cat_2_id;
$cat_2_query = new WP_Query( $args );
?>
<?
// use the query with the most posts (for pagination)
$the_query = ( $cat_1_query->found_posts >= $cat_2_query->found_posts ) ? $cat_1_query : $cat_2_query;
?>
<!-- the loop -->
<?php if ( $the_query->have_posts() ) : ?>
<?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<?php
$current_post = $the_query->current_post;
global $post;
$post_temp = $post;
?>
<!-- post from cat 1 -->
<?php
if ( isset( $cat_1_query->posts[ $current_post ] ) ) :
$post = $cat_1_query->posts[ $current_post ];
setup_postdata( $post );
?>
<!-- normal loop stuff for post cat 1 post -->
<?php get_template_part( 'content', get_post_format() ); ?>
<?php endif; ?>
<!-- post from cat 2 -->
<?php
if ( isset( $cat_2_query->posts[ $current_post ] ) ) :
$post = $cat_2_query->posts[ $current_post ];
setup_postdata( $post );
?>
<!-- normal loop stuff for cat 2 post -->
<?php get_template_part( 'content', get_post_format() ); ?>
<?php endif; ?>
<?php
// reset_post to original $post object
$post = $post_temp;
?>
<?php endwhile; ?>
<!-- pagination functions here -->
<?php wp_reset_postdata(); ?>
<?php endif; // end have_posts() check ?>