Pivoting Dynamic Rows into Columns in MySQL
You must add a GROUP BY and an aggregate around the CASE statement(s). There is no PIVOT operator with MySQL.
Query:
SELECT sa.Student_Id 
    , sa.Attendance_Date
    , MAX(CASE WHEN sa.Attendance_Date = '20160203' Then sa.Attendance_Status END) As '20160203'
    , MAX(CASE WHEN sa.Attendance_Date = '20160204' Then sa.Attendance_Status END) As '20160204'
    , MAX(CASE WHEN sa.Attendance_Date = '20160205' Then sa.Attendance_Status END) As '20160205'
    , MAX(CASE WHEN sa.Attendance_Date = '20160206' Then sa.Attendance_Status END) As '20160206'
 FROM student_attendance sa 
 INNER JOIN courses c 
     ON c.Course_Id = sa.Course_Id
 INNER JOIN students es 
     ON es.Student_Id =  sa.Student_Id
 WHERE sa.Course_Id = 1 
 ;