How to scale an object via a slider in Python?
Here's the script to do this (open to corrections):

[Edit: Added getVal to reflect current X scale]

import bpy # Python API for Blender
from bpy.types import Panel, Operator

# Class for the panel, derived by Panel
class SimpleToolPanel(Panel):
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'TOOLS'
    bl_label = 'CW Tools'
    bl_context = 'objectmode'
    bl_category = 'CW Tools' # Where the Panel have to appear. In this case in the Tools cetegory.

    def setVal(self, val):
        self.objects.active.scale[0] = val
        self.objects.active.scale[1] = val
        self.objects.active.scale[2] = val

    #Edit: Pick the value from the X scale, assuming all scale values are the same
    def getVal(self):
        return self.objects.active.scale[0]

    bpy.types.Scene.scaleVal = bpy.props.FloatProperty(set = setVal, get = getVal)

    # Add UI elements here
    def draw(self, context):
        layout = self.layout

        # New row
        row = layout.row()

        # get the selected object
        obj = context.object

        #Let's display the scale of the object
        str_scale = 'Object: ' + obj.name + ' scale: ' + str(obj.scale)

        row.label(text=str_scale)

        #Add scale slider property

        row = layout.row()
        row.prop(bpy.context.scene, 'scaleVal', text='Scale:')

# Register
def register():
    bpy.utils.register_class(SimpleToolPanel)

# Unregister
def unregister():
    bpy.utils.unregister_class(SimpleToolPanel)

# Run in text editor
if __name__ == "__main__":
    register()