Q:

How to use a MySQL view and ORDER BY clause? 

Question #1 - How to make a view of a table1 where if a certain field in the table is present in table2, then exclude that record from the view? 
Question #2 - How to order the results in DESC order by the id in Table1. 
SELECT table1.source_id
FROM table1
WHERE table1.source_id NOT IN (SELECT table2.source_id from table2)
ORDER BY table1.source_id DESC;

A:

I'd recommend you use an "anti-join" pattern.  That's a LEFT JOIN with a predicate that excludes any rows that are matched, 
SELECT t1.source_id
  FROM table1 t1
  LEFT JOIN table2 t2
    ON t2.source_id = t1.source_id 
 WHERE t2.source_id IS NULL
 ORDER
    BY t1.source_id DESC

(Performance of this statement will be best if there are indexes on both table1 an table2 with a leading column of source_id.) 
Another alternative is to use a NOT EXISTS predicate 
SELECT t1.source_id
  FROM table1 t1
 WHERE NOT EXISTS 
       ( SELECT 1
           FROM table2 t2
          WHERE t2.source_id = t1.source_id
       )
 ORDER
    BY t1.source_id DESC

(The MySQL optimizer may run that as an "anti-join" as well, rather than as a dependent subquery; you'd need to check the output from EXPLAIN to verify.) 
On large sets, either of those is going to perform much BETTER than a query that includes a derived table, such as one with a NOT IN (subquery) predicate.