You should access the fields using index position according to your cursor. In your case field "gest_zal" would be row[0]
Then you must store your update: cursor.Update(row)
Then its not clear to me if you want to update a table without actually knowing which value goes where, or add the list to a table. Your loop set the row value several times, always ending at the last on each row.
If you want to add the list to table "Wojewodzta" the code would look something like
den = kol() # list with values
arcpy.da.InsertCursor('Wojewodztwa', ['gest_zal']) as cursor:
for currDen in den:
cursor.insertRow([currDen])
If you are trying to update the table your code does not really keep track of which row to update, but something like this would update the column gest_zal with one of the values from den. However its probably pretty useless as you don't know for sure in which order the cursor loops the table and if you don't have as many items in den as in the table it will fail. Maybe you need another attribute to match the row against the list?
den = kol() # list with values
i=0
with arcpy.da.UpdateCursor('Wojewodztwa', ['gest_zal']) as cursor:
for row in cursor:
row[0]=den[i]
cursor.UpdateRow(row)
i=i+1
Read more here: http://resources.arcgis.com/en/help/main/10.2/index.html#//002z0000001q000000