Get rows changed between two dates (latest and previous)
You need to find both times, one using what you have (LIMIT 1) and the second using LIMIT 1 OFFSET 1.

I'd also use ORDER BY ... DESC, not ASC. Your wording suggests you want the rows between the last 2 appearnces of 'user':

SELECT * 
FROM user 
WHERE lastmodifieddate &gt; 
        (SELECT sync_time 
         FROM _sync_history 
         WHERE object_name = 'user' 
         ORDER BY sync_time DESC 
         LIMIT 1 OFFSET 1
        )
  AND lastmodifieddate &lt;
        (SELECT sync_time 
         FROM _sync_history 
         WHERE object_name = 'user' 
         ORDER BY sync_time DESC 
         LIMIT 1 OFFSET 0
        ) ;