Try This
SELECT DATE_FORMAT(selected_date, '%b %e'), cnt 
FROM(
        SELECT 
        str_to_date(booking_created_on, '%Y/%m/%d') AS selected_date , 
        COUNT(booking_id) AS cnt 
        FROM booking 
        WHERE booking_created_on BETWEEN '2016/02/01' AND '2016/02/08' 
        GROUP BY booking_created_on
        UNION          
        SELECT selected_date,0 AS cnt FROM 
        (SELECT adddate('1970-01-01',t4.i*10000 + t3.i*1000 + t2.i*100 + t1.i*10 + t0.i) selected_date FROM
         (SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t0,
         (SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t1,
         (SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t2,
         (SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t3,
         (SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t4) v
        where selected_date BETWEEN '2016-02-01' and '2016-02-08' AND selected_date NOT IN (
                SELECT 
                DISTINCT(str_to_date(booking_created_on, '%Y/%m/%d')) FROM booking 
                WHERE booking_created_on BETWEEN '2016/02/01' AND '2016/02/08' 
        )
) AS T1 
ORDER BY selected_date ;
In my query, first i get all date and count in your table and in second subquery i get all missing date which is not in your table between two dates. show result order by date. this is lengthy query so may be it will be some error so if any error, comment