choose MAX sub-category if null
With the data that I'm actually using (vs. the data in the example), I had to add in an additional field for the partition (not shown here), but it would look something like this...
CASE
  WHEN SUBCATEGORY IS NULL THEN
    FIRST_VALUE(SUBCATEGORY)
    OVER (PARTITION BY ADDITIONAL_FIELD,CATEGORY
          ORDER BY SUBCATEGORY NULLS LAST)
  ELSE
    SUBCATEGORY
END AS NEW_SUBCATEGORY

Full query:
SELECT
  ORDERID,
  CATEGORY,
  NEW_SUBCATEGORY,
  SUM(COUNTS) AS NEW_COUNTS
FROM
  (
    SELECT
      ORDERID,
      CATEGORY,
      SUBCATEGORY,
      CASE WHEN SUBCATEGORY IS NULL THEN FIRST_VALUE(SUBCATEGORY) OVER (PARTITION BY CATEGORY ORDER BY SUBCATEGORY NULLS LAST) ELSE SUBCATEGORY END AS NEW_SUBCATEGORY,
      COUNT(*) AS COUNTS
    FROM ORDER_TABLE
    GROUP BY
      ORDERID,
      CATEGORY,
      SUBCATEGORY
  )T
GROUP BY
  ORDERID,
  CATEGORY,
  NEW_SUBCATEGORY;