The problem is that you’ve got duplicate control IDs. In section 1 you have:
$wp_customize->add_control(new WP_Customize_Color_Control(
$wp_customize, "qs_spirit_co_section_2_text_color_control",
array(
"label" => __("Text Color", "qs-spirit-co"),
"section" => "qs_spirit_co_section_1",
"settings" => "qs_spirit_co_section_1_text_color",
"type" => "color",
)
));
Which has qs_spirit_co_section_2_text_color_control
as the ID.
And in section 2 you have:
$wp_customize->add_control(new WP_Customize_Color_Control(
$wp_customize, "qs_spirit_co_section_2_text_color_control",
array(
"label" => __("Text Color", "qs-spirit-co"),
"section" => "qs_spirit_co_section_2",
"settings" => "qs_spirit_co_section_2_text_color",
"type" => "color",
)
));
Which is also using qs_spirit_co_section_2_text_color_control
as the ID.
This means that only the first control is being added, to section 1, which means that section 2 has has no controls, and when sections have no controls they do not appear.
Make sure to give the controls unique IDs.