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;