Does mysql make some internal maintenance after some uptime?
If you are using a "hosted service", they could be doing something, such as a backup.
EVENTs can do things at specific times.
Otherwise, nothing in mysql should cause what you are seeing.
Could the entire server be taking a dump?  Do ps when the load average goes high.
Let's see the query -- "Rows examined" will stay the same unless the table or the query is being modified.  It's an exact number, unlike "Rows" in EXPLAIN.  If you got 19023 from EXPLAIN, that is mighty far off, but it is not impossible.  Let's also see SHOW CREATE TABLE, maybe you have a lot of TEXTs or BLOBs; these sometimes confuse EXPLAIN.
Could there be a long-running transaction (or something) that happens every weekend.  "Interference" from other tasks can cause a burst of "slow queries".
11 seconds to touch 10M rows -- not bad.
Lower long_query_time down to at least 2.
Use `pt-query-digest to summarize the naughty queries.  This catches both (1) slow, but rare, queries, and (2) frequent, but fast, queries.