Create trigger to insert rows from one table to another with sum operation (group by)
First observation, FROM is usually before WHERE, i.e. 

car_single = SELECT SUM(car_single) FROM shift WHERE ... 


Second observation, INSERTnormally have the form: 

INSERT INTO daily (day, month, ... ) 
VALUES (...)


These are the syntactical errors I find in your trigger. Logically I think there is more to do. Your trigger will insert a new row into daily every time a new row is inserted into shift, from your description that does not sound right. Here's what I would try to do (only a sketch).

CREATE TRIGGER `test`.`after_insert_shift` 
AFTER INSERT ON `test`.`shift`
FOR EACH ROW 
BEGIN
    UPDATE daily SET (car_single, car_return) = (
        SELECT SUM(car_single), SUM(car_return)
        FROM shift
        WHERE day = new.day 
          AND daily.month = new.month
          AND daily.year = new.year 
          AND ...
    )
    WHERE daily.month = new.month
      AND daily.year = new.year
      AND ...  

    -- Check if number of rows updated = 0, if so insert a new row
    SELECT ROW_COUNT() INTO N;
    IF N = 0 THEN
        INSERT INTO daily (c1, c2, c3, ...)
        SELECT ...


Don't know if that's your problem, but I would start there.