How to optimize table size by deleting columns or just emptying them
Short answer:  I doubt if it is worth doing either.

Medium answer:  It depends on a lot of things.  You could calculate SUM(LENGTH(col1)) + SUM(LENGTH(COL2)) + ... to get a crude estimate.  But (as the long answer explains) that savings may be an over- or under-estimate in the case of NULLing.  In the case of DROPping, it is likely to be an underestimate of the shrinkage.

Long answer:

(It would help if you had provided SHOW CREATE TABLE.

In MySQL, VARCHAR(512) will take a little bit of space even if empty or NULL.  At most it will take 2050 bytes since it is utf8mb4, but it is unlikely to really be that big.

Since you have a number of large VARCHAR columns, they may be placed in an off-row storage that is handled in a different way.  This depends on how bulky all the columns are and what the ROW_FORMAT is.  I am assuming you are using InnoDB; MyISAM works quite differently.

Because of the way setting a column to NULL works, you may not save as much space as you would calculate.

DROP COLUMN is a drastic approach.  It will take a long time because it will copy the table over and rebuild all the indexes.  But, in doing so, it will defragment both the data and the indexes, squeezing out more space than simply NULLing would do.  The DROP approach might reduce the table size more than you would compute.

But... If you have innodb_file_per_table = 0, no space will be returned to the OS by either method!  It might even increase the space used!  This is because a copy of the table is needed during the DROP.

With innodb_file_per_table = 1, you will recoup the freed space, but only after needing space for a copy of the table.

Why do you want to shrink the table?  My above answers assume you are getting low on disk space.

Note DROP does the same as OPTIMIZE TABLE, with the additional feature of removing the column.

If you are hoping to speed things up by shrinking the table, forget it.