Speed of MySQL query for the most recent 800 entries in chronological order
You could break out of that subquery like this:

SELECT Device_ip, Status, timestamp
    FROM ping_results
    WHERE Device_ip = '192.168.1.1'
    AND timestamp &gt; DATE_SUB(NOW(), INTERVAL 800 MINUTE )
    ORDER BY timestamp ASC


That should simplify the query plan a bit, and you're only doing one ORDER BY instead of two.

As everyone else also mentioned, indexes are a good idea for improving performance, and will probably do more than manipulating the query.