You'll want to use the data access search cursor (requires ArcGIS 10.1+) for this task, and its sql clause
functionality. The sql clause allows for sorting.
Here's the python code that assigns the first non-null value in the sorted field to the varaible var
:
#Path to feature class
fc = r"C:\Path\To.gdb\Feature Class"
#Field name
fld = "Field_Name"
sqlClause = (None, "ORDER BY {0} ASC".format (fld))
with arcpy.da.SearchCursor (fc, fld, sql_clause = sqlClause) as cursor:
for val, in cursor:
if val:
break
del cursor
example:

I recommend doing this outside of the field calculator, and instead as a python script imported into ModelBuilder, so that each row calculated doesn't create a new cursor.