There is a different List class in the System.Collections.Generic namespace. If you were to use a class in that namespace as well as a class in the Microsoft SharePoint.Client namespace then you need to have a way for the compiler to know which one to use. One way is to specify one of the namespaces in a using statement but then you would need to fully qualify the other namespace when you use it. Or you could just fully qualify both, without a need for a using statement. I think however that is not what you are asking about.
You are asking whether to assign null or new Microsoft.SharePoint.Client.List() to newList. Neither one is always proper or improper. It depends on what you are doing. If you use null then (in order to use the list) you must (can) later use new Microsoft.SharePoint.Client.List() or something else to create the list.
In general, this is 100% true, and not limited to List, but any two classes that share a name in the same scope and the same invocation context.
That said, in this case…the compiler can recognize by context; a Microsoft.SharePoint.Client.List does not carry a Type definition, and a Collections List requires one, so my compiler (.NET 8) is perfectly happy to accept this code:
using Microsoft.SharePoint.Client;
using System.Collections.Generic;
List<int> ints = new(); //Recognized as System.Collections.Generic.List
List next = new(); //Recognized as Microsoft.SharePoint.Client
Okay to be fair the compiler doesn’t like next = new(); because the constructor for Microsoft.SharePoint.Client expects 2 arguments, but that’s besides the point.