In general, MyEvent lets you specify filters within a specific event type (you can filter by parameter values), whereas getPastEvents returns all events for an event type.
getPastEvents will return all events that have occurred up until the block number the node you’re connected to is synced to.
MyEvent will return those same events, plus will call the callback on any new events that occur as new blocks are added to the chain.
hope this makes things little more clear