Q:

Too many values in oracle select statment

I get oracle ORA-00913: too many values error when I execute following query.
SELECT qst.QUE_NAME,
  (SELECT sec2.SECTION_NAME AS "sectionName",
    sec2.SECTION_ID_PK      AS "sectionId",
    sec2.SECTION_SEQUENCE   AS "sequence",
    CASE(sec2.ENABLE_SCORING)
      WHEN '1'
      THEN 'true'
      ELSE 'false'
    END AS "hasScore",
    sec2.SECTION_WEIGHTAGE,
    sec2.SEC_TOTAL_SCR_WEIGHTAGE,
    sec2.SECTION_TYPE
  FROM MS_XRQ_SECTION sec2
  WHERE sec2.section_category=2
  AND sec2.SECTION_QUESTNR_FK=qst.INTERNAL_QUESTNR_ID
  )
FROM MS_XRQ_QUESTIONNAIRE qst
WHERE qst.INTERNAL_QUESTNR_ID= 'Questionnaire-3032';

When I run second select statement (which is inside brackets) with hard coded value 'Questionnaire-3032', it returns correct result.  
Also when I run following query it also returns 1 record.
SELECT qst.QUE_NAME FROM MS_XRQ_QUESTIONNAIRE qst WHERE qst.INTERNAL_QUESTNR_ID= 'Questionnaire-3032';

So these two standalone queries run fine. But when I want to merge their results into one, I get this error. I am unable to understand what I am doing wrong here! Can anyone tell me why it's happening?
I would further like to pass this query to dbms_xmlgen.getxmltype() function to get output similar to the following.
<question> 
<name> Q1</name>
<sections>
<section> s1</section>
<section> s2</section>
</sections>
<questions>

A:

When I run second select statement (which is inside brackets) with hard coded value 'Questionnaire-3032', it returns correct result.

That's because it is perfectly valid as a standalone procedure. The reason it fails in your original query is that you are embedding it in the query projection. That is a supported construct but only as a scalar cursor: you have more than one column in the subquery's projection.
You haven't posted any sample data so I have made a few guesses about what you want. However, this SQL XML solution produces a valid XML document and appears to match the skeleton in your question. 
SELECT XMLELEMENT("Questionnaire",
         XMLAGG (
           XMLELEMENT("Question",
             XMLFOREST(
               qst.QUE_NAME AS "Name",
                  (SELECT XMLAGG(
                         XMLELEMENT("Section",
                           XMLFOREST(
                              sec2.SECTION_NAME AS "sectionName",
                              sec2.SECTION_ID_PK      AS "sectionId",
                              sec2.SECTION_SEQUENCE   AS "sequence",
                              CASE(sec2.ENABLE_SCORING)
                                  WHEN '1'
                                  THEN 'true'
                                  ELSE 'false'
                              END AS "hasScore",
                              sec2.SECTION_WEIGHTAGE,
                              sec2.SEC_TOTAL_SCR_WEIGHTAGE,
                              sec2.SECTION_TYPE
                          )
                       )
                    )   
                   FROM MS_XRQ_SECTION sec2
                   WHERE sec2.section_category = 2
                   AND sec2.SECTION_QUESTNR_FK = qst.INTERNAL_QUESTNR_ID
               ) "sections"
           )
        )
      ) 
    )    
FROM MS_XRQ_QUESTIONNAIRE qst
WHERE qst.INTERNAL_QUESTNR_ID= 'Questionnaire-3032';

I have posted a demo on SQL Fiddle here but unfortunately the GUI doesn't play nice with oracle.xdb.XMLTypeFactory :(

