SQL Query to select rows based on specific condition
It is possible to solve by adding one more copy of a table for to check there is no 'Play' activity after. 

But it's better to use a subquery for to select last 'Play' activity, and get all records after it:

SELECT t1.*
FROM `table` t1, (SELECT id, MAX(`timestamp`) `timestamp`
                  FROM `table`
                  WHERE activity = 'Play'
                  GROUP BY id) t2
WHERE t1.id = t2.id
  AND t1.`timestamp` &gt; t2.`timestamp`