For old nodes it still is 1mb, they will only receive 1mb of data, all the extra data is the witness data for SegWit (old nodes can't validate that data) and it can get striped away before it is sent to old nodes.
It is indeed a brilliant trick because it is backwards compatible decentralisation.