As Lalit has mentioned, your issue is that you are attempting to select a single row and then order it, which doesn't get you what you're after.
You'd have to rewrite your subquery to do the ordering first and then filter to just one row in an outer query, like so:
select cmnt_type
from   (select   upper(cmnt_type) AS CMNT_TYPE
        from     t_tbm_appl_comment_2015 tac
        where    tac.appl_mnm_id = a.appl_mnm_id
        order by cmnt_type desc)
where  rownum = 1
However, if you were to use that in the select list of your query, you'd end up with a an error of ORA-00904: "A"."APPL_MNM_ID": invalid identifier, due to the fact that correlated queries can only reference the outer query in the next level down.
Since it appears that you're trying to get the biggest upper(cmnt_type), why not use MAX() instead?
E.g.:
select a.column_name,
       (select max(upper(cmnt_type))
        from   t_tbm_appl_comment_2015 tac
        where  tac.appl_mnm_id = a.appl_mnm_id) cmnt_type
from   md_other_objects a;