I want to say that the above answer worked for me, but I needed to make some slight adjustments to the if statement. I also made an adjustment to work like...

if the post category is a parent, display the children 

if the post category is a parent but has no children, display posts

    <?php 
    
    $cat_id = get_query_var('cat');
    
    if( ! empty( $cat_id ) ) {
        $category = get_category( $cat_id, ARRAY_A );
    
        if( ! empty( $category ) ) {
            //get child cats
            $terms = get_term_children( $cat_id, 'category' );
            // parent category
            if( $category['parent'] == '0' and $terms[0] != '') {

                    foreach( $terms as $term_id ) {
                        $child_category = get_term( $term_id, 'category' );
    
                        // if you need the category
                        $category_name = $child_category->name;
    
    
                        /**
                         * Sample data in your child category object: 
                         * 
                         * object(stdClass)[365]
                                  public 'term_id' => string '14' (length=2)
                                  public 'name' => string 'Child 1' (length=7)
                                  public 'slug' => string 'child-1' (length=7)
                                  public 'term_group' => string '0' (length=1)
                                  public 'term_taxonomy_id' => string '14' (length=2)
                                  public 'taxonomy' => string 'category' (length=8)
                                  public 'description' => string '' (length=0)
                                  public 'parent' => string '12' (length=2)
                                  public 'count' => string '5' (length=1)
                                  public 'object_id' => string '33' (length=2)
                         * 
                         * 
                         */
    
                        // do whatever you like with the categories now...
                    }
                }  
                else { // in child category
                    // do the regular loop here, if ( have_posts() ) ...
                }
            }
        }