You have to group with parenthesis when you use "AND" and "OR" together in a SQL query. Otherwise the results are unpredictable or the query fails.
If department can be 0 or 1 and draft has to be 1 do this:
"SELECT * FROM front_news WHERE draft = 1 AND (department_id = 1 OR department_id = 0) ORDER BY id DESC"
or if draft has to be one and department has to be 1 or department is 0, try this:
"SELECT * FROM front_news WHERE (draft = 1 AND department_id = 1) OR department_id = 0 ORDER BY id DESC"
I'm not sure which you want to do.
You are doing double quotes so every "$" inside the code is executed as a variable. To ensure that happens you can wrap in curly braces if you want "{$id}".