How do I return two aliases from the same table query?
This query will return both queries as a single result. The last column added QueryIndicator is there to indicate which query the results came from. Note that UNION ALL allows duplicates, use UNION if you need to filter them out.

(SELECT
    id
    ,key
    ,READ
    ,deleted
    ,subscriber
    ,messageDate
    ,message
    ,'Unread' AS QueryIndicator
FROM notifications
WHERE READ = false LIMIT 99)

UNION ALL

SELECT
    id
    ,key
    ,READ
    ,deleted
    ,subscriber
    ,messageDate
    ,message
    ,'Read' AS QueryIndicator
FROM notifications
WHERE READ = true
    AND deleted = false LIMIT 99;


Here would be a JSON export example. Based on code found by Jack Christensen on hashrocket.

DB Fiddle Results and Example

select row_to_json(t)
from (
  select (
      select array_to_json(array_agg(row_to_json(d)))
      from (
SELECT
    id
    ,key
    ,READ
    ,deleted
    ,subscriber
    ,messageDate
    ,message
FROM notifications 
WHERE READ = true 
    AND deleted = false LIMIT 99
     ) d
    ) as Read_Notifications
    FROM notifications
WHERE READ = true
    AND deleted = false LIMIT 1)t
    union all
    select row_to_json(t)
from (
  select (
      select array_to_json(array_agg(row_to_json(c)))
      from (
SELECT
    id
    ,key
    ,READ
    ,deleted
    ,subscriber
    ,messageDate
    ,message
FROM notifications 
WHERE READ = false   LIMIT 99
     ) c
    ) as Unread_Notifications
    FROM notifications
WHERE READ = false
 LIMIT 1)t;