In this case it is better to have an overload rather than a default parameter.
As you can see from the other answers, if you use a default parameter and the caller does not specify it, then they will need to specify the type of T in the call:
DBOperations.GetQueryResult<MyType>(myConnectionString, myQuery);
However, because the dictionary is not used if it is null (presumably!), then it is pointless for the caller to have to specify an arbitrary type just to call the function when not specifying a dictionary.
So you should introduce an overload which doesn't have the dictionary parameter at all, so the caller won't have that problem.