The estimated cost of both MIN() and MAX() are the same. The MIN() take 103 page reads where MAX() takes only 2 reads. This is because the MIN() guide the ExecutionEngine to go to the first row of the index, scan the index to get the NOT NULL value.
In my example, if no records has NOT NULL key, the max() will scan entire table.
I would suggest to use the index in a smarter way that use none-leaf level records to identify the first NOT NULL value rather than scanning entire table.