mysql need to show all months data for the selected year
Maybe:

SELECT 
   MONTH(`DateAdded`), 
   YEAR(`DateAdded`),
   count(pkID) as TRecords 
FROM students 
WHERE 
    fkCategoryID ='56' OR 
    fkSecondaryCategoryID ='56' OR 
    fkOptionalCategoryID ='56'
group by 
    MONTH(`DateAdded`), YEAR(`DateAdded`)


Or maybe some more filters. Your question is not all clear.

Or maybe:

if object_id ('tempdb..#students') is not null drop table #students


create table #students 
    (
    pkID int,
    DateAdded date
    )

 insert #students values 
      (1, '20100101'),
      (1, '20100201'),
      (1, '20100301'),
      (1, '20100401'),
      (1, '20100501'),
      (1, '20100601'),
      (2, '20100101'),
      (2, '20100201'),
      (2, '20100301')

SELECT 
   MONTH(DateAdded), 
   YEAR(DateAdded),
   count(pkID) as TRecords,
   sum(count(pkID)) over(partition by YEAR(DateAdded) order by MONTH(DateAdded))
FROM #students 
group by 
    MONTH(DateAdded), YEAR(DateAdded)
 order by 2,1


Or maybe:

SELECT 
   MONTH(s.DateAdded), 
   YEAR(s.DateAdded),
   count(s.pkID) as TRecords,
   (select count(pkID)
    from #students
        where 
            YEAR(DateAdded) &lt;= YEAR(s.DateAdded) 
            and MONTH(DateAdded) &lt;= MONTH(s.DateAdded)
   )
FROM #students s
group by 
   MONTH(s.DateAdded), YEAR(s.DateAdded)