Since you are redirecting to the "alternative image" you need to include an exception so that requests to your "alternative image" are not also redirected, thus creating a redirect loop (which times out and puts an additional strain on your server!).
For example:
RewriteEngine on
RewriteCond %{REQUEST_URI} !thou-shalt-not-steal\.gif$
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?marusiak.pl [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?wojcieh.net [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ https://wojcieh.net/wp-content/uploads/2017/06/thou-shalt-not-steal.gif [NC,R,L]
However, if you must return an image (and not simply 403 the request) then it would be preferable to internally rewrite the request, rather than redirecting. This way, your server doesn't get the additional request and the "alternative image" remains incognito (harder to steal!). For example:
RewriteEngine on
RewriteCond %{REQUEST_URI} !thou-shalt-not-steal\.gif$
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?marusiak\.pl [NC]
RewriteCond %{HTTP_REFERER} !^https://wojcieh\.net [NC]
RewriteRule \.(jpe?g|png|gif)$ /wp-content/uploads/2017/06/thou-shalt-not-steal.gif [NC,L]
NB: You only need to set a condition for the canonical hosts.
Aside: That tool you used at htaccesstools.com
does include an additional note:
NOTE: Make sure the image is not hotlink protected or your server can go into an endless loop.
...which is what was happening with your code. But they don't provide the necessary code/directive to do this, so the generated code by itself will not work out of the box.