You are getting a System.RuntimeType from [Math] because that is what it is. It's a Class type as opposed to an object of that particular type. You haven't actually constructed a [Math] object. You will get the same output if you typed:
[String] | gm
However, if you constructed a string object from the String type, you would get the string members:
PS C:\> [String]("hi") | gm
TypeName: System.String
Name MemberType Definition
---- ---------- ----------
Clone Method System.Object Clone()
CompareTo Method System.Int32 CompareTo(Object value), System.Int32 CompareTo(String strB)
Contains Method System.Boolean Contains(String value)
CopyTo Method System.Void CopyTo(Int32 sourceIndex, Char[] destination, Int32 destinationIn...
etc...
Since System.Math has only static members, you can't construct an object of it. To see it's members you can use the GetMembers() function of System.RuntimeType:
[Math].GetMethods()
You can use one of the format-* cmdlets to format the output:
[Math].GetMethods() | format-table
Edit: Oh, and I should add, to invoke one of the static members, you would do it like this:
[Math]::Cos(1.5)