I've created a simple script to share via a web app so that folks without desktop can convert shapes to KML/KMZ. The script writes the output KMZ as expected in the scratch folder where it belongs but doesn't appear in the GP Results window and therefore is a null output when published as a GP Service.
I have a similar script which takes a zip of a multiple shapefiles, reprojects them and zips them back up; this script tool is configured identically and the output zip shows in the GP results and also is returned in the output when published as a GP service.
Script Tool:

Code (not really sure this will help):
<SPAN class="keyword token">import</SPAN> arcpy
<SPAN class="keyword token">import</SPAN> zipfile
<SPAN class="keyword token">import</SPAN> sys
<SPAN class="keyword token">import</SPAN> os
<SPAN class="keyword token">from</SPAN> os <SPAN class="keyword token">import</SPAN> makedirs
<SPAN class="keyword token">from</SPAN> os<SPAN class="punctuation token">.</SPAN>path <SPAN class="keyword token">import</SPAN> join
inZip <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>GetParameterAsText<SPAN class="punctuation token">(</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token"># Create a folder in the scratch directory to extract zip to </SPAN>
outFolder <SPAN class="operator token">=</SPAN> os<SPAN class="punctuation token">.</SPAN>path<SPAN class="punctuation token">.</SPAN>join<SPAN class="punctuation token">(</SPAN>arcpy<SPAN class="punctuation token">.</SPAN>env<SPAN class="punctuation token">.</SPAN>scratchFolder<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"zipContents"</SPAN><SPAN class="punctuation token">)</SPAN>
os<SPAN class="punctuation token">.</SPAN>mkdir<SPAN class="punctuation token">(</SPAN>outFolder<SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token"># Create a folder in the scratch directory for the KML</SPAN>
KMLfolder <SPAN class="operator token">=</SPAN> join<SPAN class="punctuation token">(</SPAN>arcpy<SPAN class="punctuation token">.</SPAN>env<SPAN class="punctuation token">.</SPAN>scratchFolder<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"KML"</SPAN><SPAN class="punctuation token">)</SPAN>
makedirs<SPAN class="punctuation token">(</SPAN>KMLfolder<SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token"># Extract the zip contents </SPAN>
zip2Extract <SPAN class="operator token">=</SPAN> zipfile<SPAN class="punctuation token">.</SPAN>ZipFile<SPAN class="punctuation token">(</SPAN>inZip<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'r'</SPAN><SPAN class="punctuation token">)</SPAN>
zip2Extract<SPAN class="punctuation token">.</SPAN>extractall<SPAN class="punctuation token">(</SPAN>outFolder<SPAN class="punctuation token">)</SPAN>
zip2Extract<SPAN class="punctuation token">.</SPAN>close<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token"># Set the workspace</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>env<SPAN class="punctuation token">.</SPAN>workspace <SPAN class="operator token">=</SPAN> outFolder
<SPAN class="comment token"># Create a list of shapefiles</SPAN>
featureclasses <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>ListFeatureClasses<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">print</SPAN> featureclasses
<SPAN class="comment token"># Use ListFeatureClasses to generate a list of inputs </SPAN>
<SPAN class="keyword token">for</SPAN> infc <SPAN class="keyword token">in</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>ListFeatureClasses<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="comment token"># Determine if the input has a defined coordinate system, can't project if it does not</SPAN>
dsc <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>Describe<SPAN class="punctuation token">(</SPAN>infc<SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">if</SPAN> dsc<SPAN class="punctuation token">.</SPAN>spatialReference<SPAN class="punctuation token">.</SPAN>Name <SPAN class="operator token">==</SPAN> <SPAN class="string token">"Unknown"</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">'skipped this fc due to undefined coordinate system: '</SPAN> <SPAN class="operator token">+</SPAN> infc<SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">else</SPAN><SPAN class="punctuation token">:</SPAN>
<SPAN class="comment token"># Make Feature Layer from FC</SPAN>
tempLayer <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>MakeFeatureLayer_management<SPAN class="punctuation token">(</SPAN>infc<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"tempLayer"</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token"># Define KML output</SPAN>
baseName<SPAN class="operator token">=</SPAN>os<SPAN class="punctuation token">.</SPAN>path<SPAN class="punctuation token">.</SPAN>basename<SPAN class="punctuation token">(</SPAN>infc<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN>split<SPAN class="punctuation token">(</SPAN><SPAN class="string token">'.'</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN>
outKML <SPAN class="operator token">=</SPAN> os<SPAN class="punctuation token">.</SPAN>path<SPAN class="punctuation token">.</SPAN>join<SPAN class="punctuation token">(</SPAN>KMLfolder<SPAN class="punctuation token">,</SPAN> baseName <SPAN class="operator token">+</SPAN> <SPAN class="string token">'.kmz'</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="comment token">#Convert Layer to KML</SPAN>
output <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>LayerToKML_conversion<SPAN class="punctuation token">(</SPAN>tempLayer<SPAN class="punctuation token">,</SPAN> outKML<SPAN class="punctuation token">)</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>