How to subtract the sum of columns from different tables?
As an alternative to a full join, you could use UNION ALL to combine the two aggregated sets together, only the withdrawals set would be included with the negated results. You would then use the combined set as a derived table and aggregate the amounts per account_id once more:

SELECT
  account_id,
  SUM(amount) AS balance
FROM
  (
    SELECT
      account_id,
      SUM(amount) AS amount
    FROM
      prizes
    GROUP BY
      account_id

    UNION ALL

    SELECT
      account_id,
      -SUM(amount) AS amount
    FROM
      withdrawals
    GROUP BY
      account_id
  ) AS derived
GROUP BY
  account_id
;


I am not sure how this query would compare to the full join solution but it looks simple enough to me to qualify as a good starting point.