Generics don't take a System.Type type, per se. As best as I can tell from the MSDN docs, it's actually a "type parameter" or "template." There's a fairly in-depth discussion on this Stack Overflow question on the topic. To get around that, though, you can change your `AddComponent` call to the non-generic type (which does take a System.Type argument) and it seems to work OK:
System.Type colliderType = ColliderTypeFromName();
if (colliderType != null) gameObject.AddComponent (colliderType);
that said, this code does smell a bit, and I suspect that if you provide a bit more context of the problem you're trying to solve, a more elegant solution would be available.