Просто заменив поля «*» числами «один», «два» и т. Д. Их перечисление гарантирует, что ваши поля выстраиваются между запросами:
SELECT ca.[one]
,ca.[two]
,ca.idMateria
,ca.[three]
,ca.[Materia]
,ca.[five]
,ca.[six]
,ca.[seven]
,ca.[eight]
,ca.[nine]
,ca.[ten]
,ca.[eleven]
,ca.[twelve]
,ca.[thirteen]
,ca.[fourteen]
,ca.[fifteen]
,ca.[sixteen]
,ca.[seventeen]
,ca.[eighteen]
,ca.[nineteen]
,ca.[twenty]
,pem.orden
FROM Escolares.ftCardex('7', '3395') AS ca
JOIN Escolares.plan_estudios_materia AS pem ON pem.idmateria = ca.idMateria
AND pem.idplan_estudios = ca.idPlanDeEstudios
UNION ALL
SELECT [one] = NULL
,NULL
,idMateria
,NULL
,Materia
,NULL
,NULL
,NULL
,NULL
,NULL
,NULL
,NULL
,NULL
,NULL
,NULL
,NULL
,NULL
,NULL
,NULL
,NULL
,NULL
,NULL
FROM Escolares.ftMateriasPorCursar('7', '3395')
ORDER BY orden;