One thing to note is that the storage field for the table's output is NVARCHAR(MAX), so it holds quite a bit of data, and every time the job runs, it logs to the table by concatenating the latest output to the existing row for the job in sysjobstepslogs (at least, to my knowledge).
If you've had this job logging to the table for quite some time, it's going to be quite bloated from holding the timespan's worth of logged messages, hence the large table size with very few rows. I don't believe there's any harm in truncating the table, as long as you're sure you're getting the data you need out of the jobs, and that there's no funky workarounds in your system that require a job to log to the table in order to pull data from it (I've seen a case where it's been done... Quite clunky, and I'm sure there was a better way).
EDIT: Doh, nearly forgot. If it turns out you do in fact need the logging data, sp_help_jobsteplog and sp_delete_jobsteplog will be useful:sp_help_jobsteplogsp_delete_jobsteplog
The first will let you figure out properties of the job logs (such as size), and the second will allow you to delete based on those properties.