How to sort data using 2 conditions and keep the first set of data always at the top?
Use the ISNULL() function

SELECT * FROM mytable
ORDER BY ISNULL(status) DESC,date;


or

SELECT * FROM mytable
ORDER BY 1-ISNULL(status),date;


For pagination, you can reference id

SELECT B.* FROM
(
    SELECT id FROM mytable
    ORDER BY ISNULL(status) DESC,date
    LIMIT xxx OFFSET yyy
) A INNER JOIN mytable B USING (id)
ORDER BY ISNULL(B.date) DESC,B.date;