Your sample data doesn't make any sense - objective 3 has no criteria, and criteria 5 has no procedure.
Assuming that's just a typo in your question, something like this should work:
SELECT
O.Description As Objective,
C.Description As Criteria,
P.Description As [Procedure]
FROM
YourTable As O
LEFT JOIN YourTable As C
ON C.ParentID = O.ID And C.Category = 'Criteria'
LEFT JOIN YourTable As P
ON P.ParentID = C.ID And P.Category = 'Procedure'
WHERE
O.ParentID Is Null
;
With your sample data, that produces the following output:
Objective Criteria Procedure
ABC YYY CCC
ABC YYY EEEE
ABC DDD <NULL>
CDE AAA JJJJ
XXX <NULL> <NULL>