V manualu MySQL stoji:
If you don't use the keyword ALL for the UNION, all returned rows will be unique, as if you had done a DISTINCT for the total result set. If you specify ALL, you will get all matching rows from all the used SELECT statements.
To je snad celkem srozumitelne, ne?