MYSQL query to find records between two date range
Your query has a logical flaw: it tries to find people who are NOT in the list of people who DO have coaching but only if the coaching is NOT in the target window.

Instead, join the employee and coaching table on employee_id, using all rows in employee but only using rows in coaching where the stop_date is later than or equal to the desired start date (coaching ends after the window starts) and the the start_date is less than or equal to the desired stop date (coaching starts before the window ends).  Then exclude the employees with one or more matching rows in coaching.

SELECT e.id AS employee_id
  FROM employee e
  LEFT JOIN coaching c ON c.employee_id = e.id
                      AND c.end_date &gt;= '2014-12-26'
                      AND c.start_date &lt;= '2015-01-30'
 WHERE c.employee_id IS NULL;


Live demo: http://sqlfiddle.com/#!9/79b39/4