A little bit of math magic can help:
UPDATE myTable
SET start_year = start_year - end_year,
end_year = end_year + start_year,
start_year = end_year - start_year
WHERE start_year > end_year
AND end_year IS NOT NULL
Remark
I cannot tell how reliable is this method of updating. In order to have the desired effect, the expressions must be computed and the assignments must be done in the order presented in the query. If MySQL decides to compute or assign them in a different order then the query will produce a mess in the table.
An excerpt from the manual:
Single-table UPDATE assignments are generally evaluated from left to right. For multiple-table updates, there is no guarantee that assignments are carried out in any particular order.
It is not very clear from the fragment above if the assignments are evaluated from left to right or not. It says "generally" but it doesn't explain what are the exceptions.
I tested the query on MySQL 5.5.24 using the small sample data provided in the question and it worked as expected.
Advice
Backup your table before running this query. You have been warned!